INDEX | PREV | NEXT
DICE SOURCE CODE RELEASE README
Matt Dillions Swansong
Well, here it is. The source to DICE. I really meant to release this a
lot sooner. I plead laziness :-) Note that I haven't touched my Amiga
for quite a while, and the library support may very well be lacking.
Support up to the amiga 3.0 includes / library is included, but the
amiga includes themselves are not included because I am not sure what
the disposition of commodore's copyright is.
DICE is a 68000 compiler. It was written as an Amiga C compiler, but it
can really be used as a generic 68000 C compiler. Even though I haven't
touched an Amiga for a while, I still use DICE on my FreeBSD box to
compile 68000 projects.
DICE will compile on an Amiga, linux, or FreeBSD machine. Most of the
utilities will generate the correct 68000 byte ordering even when compiled
on an Intel box. It will generate Amiga binaries and utilities are
included to generate ROMable code. All DICE features work and the
relocateable and small-data models are incredibly powerful when used in
an embedded environment.
My email address and web pages
dillon@backplane.com
http://www.backplane.com/
http://www.obviously.com/
(I) MISSING FILES
There is some confusion as to whether the Amiga includes can be
distributed. Before commodore went belly-up, they did make the .FD
files free, so I am including the fd/ and clib/ subdirectories for
the 1.3, 2.0. and 3.0 includes but I am not including any of the
commodore structural includes (exec/, intuition/, etc...)
If you have the amiga includes, the 1.3 includes should be placed in
include/amiga13, the 2.0 placed in include/amiga20, and so on.
What this means is that you CAN generate an 'amiga.lib' and pragmas
from the .fd files, but the structural includes aren't available unless
you already have them.
The amiga includes are only required if you are compiling the
compiler on the Amiga or compiling for an Amiga target. These
includes are not required if you use DICE to compile embedded 68000 code.
(II) COMPILING DICE UNDER UNIX FOR CROSS-COMPILING
NOTE: floating point constants are not supported because they require
the Amiga FP library. However, you can generate all amiga libraries
except those routines which employe FP constants from your
(0) Setup environment
setenv DCCOPTS -3.0 -//
setenv DINCLUDE /home/dice/include/
(assuming this is where you unpack the distribution)
If your UNIX box uses intel byte ordering, the makefiles are setup
ok. If it doesn't, you have to remove the -DINTELBYTEORDER option
from suplib/Makefile and src/*/Makefile. Sorry! This option must
be specified correctly for the DICE compiler on a UNIX box to produce
machine-independant (68000 byte-ordered) output files.
Most people run UNIX on Intel platforms (e.g. FreeBSD). If so you
do not have to modify the Makefiles... you leave -DINTELBYTEORDER in.
(1) Make the suplemental library for UNIX.
cd suplib
make
make install
make clean
cd ..
(2) make the compiler and utilities
NOTE: the main compiler does not support FP constants when compiled
under UNIX.
cd src
make
make install
make clean
cd ..
NOTE: if using csh/tcsh, you should 'rehash' after installing the
binaries and also make sure that your $path includes the location
of these binaries.
(3) AMIGA SPECIFIC AMIGAxxx.LIB EQUIVALENTS
These libraries are provided precompiled in the distribution and may
also be regenerated.
You can create amigaxxx.lib equivalents. The auto library is used
to automatically open those system libraries used by the code.
cd lib
dmake -f DMakefile.unix amiga13
dmake -f DMakefile.unix amiga20
dmake -f DMakefile.unix auto
(4) ROM LIBRARY, AMIGA LIBRARIES
These libraries are provided precompiled in the distribution and may
also be regenerated.
You can create a machine-independant ROM library
cd lib
dmake -f DMakefile.unix rom
(5) AMIGA SUPPORT LIBRARIES
These libraries are provided precompiled in the distribution and may
also be regenerated.
DICE includes stdio, string, and other Amiga-specific support
libraries. If you have the amiga includes installed, you can compile
these libraries simply with:
cd lib
dmake -f DMakefile.unix all
(III) COMPILING DICE UNDER THE AMIGA
Yes you can do it. Unfortunately, I haven't run the compile myself for
a long time so you will probably have to mess around with the various
DMakefile's. The DMakefile's for the compiler & utilities look something
like: src/dc1/DC1.DICE. You compile by cd'ing into src/dc1 and then
doing a 'DMakefile -f DC1.DICE'. You will have to setup a compilation
environment, though, and since I don't have an Amiga handy I can't give
you exact instructions.
To compile DICE on the Amiga you need DICE. This shouldn't be a problem,
I include full amiga compiler binaries. I do not include the
commodore-specific Amiga includes, however... you need to get those
separately.
(IV) DIRECTORIES
abin amiga binaries
dlib amiga/68000 support libraries
ubin unix binaries
ulib unix support libraries
src primary utility and compiler source
lib amiga/68000 support library source
suplib unix support library source
include header files for amiga/68000 libraries, including
selected portions of the 1.3, 2.0, and 3.0 includes
(the clib and fd directories only), and the DICE
ANSI library.
config Various amiga-related DMakefile's for compiling
DICE (included as-is)
doc Library and compiler documentation
(included as-is)
installer Bunches of installation scripts. Included AS-IS.
master Random junk (used to be the disk template that I used
to make floppies). Removed duplicate information that
already exists in other directories.
-Matt
Converted using GuideML V1.6, a converter written by Richard Körber <shred@chessy.aworld.de>